package it.appcatalogobase;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

public class DoveSiamoDataSource {
	 // Database fields
	  private SQLiteDatabase database;
	  private CatalogoOpenHelper dbHelper;
	  private String[] allColumns = { CatalogoOpenHelper.COLUMN_ID_DS,
			  CatalogoOpenHelper.COLUMN_IND_DS, CatalogoOpenHelper.COLUMN_MAIL_DS, CatalogoOpenHelper.COLUMN_CELL_DS, CatalogoOpenHelper.COLUMN_TEL_DS, CatalogoOpenHelper.COLUMN_FAX_DS,CatalogoOpenHelper.COLUMN_LAT_DS,CatalogoOpenHelper.COLUMN_LONG_DS};
	  private Context context; 
	  public DoveSiamoDataSource(Context context) {
	    dbHelper = new CatalogoOpenHelper(context);
	    this.context = context;
	  }

	  public void open() throws SQLException {
	    database = dbHelper.getWritableDatabase();
	  }

	  public void close() {
	    dbHelper.close();
	  }

	  public DoveSiamo createDoveSiamo(String indirizzo, String mail, String cell, String tel, String fax, String lat, String lon) {
	    ContentValues values = new ContentValues();
	    values.put(CatalogoOpenHelper.COLUMN_IND_DS, indirizzo);
	    values.put(CatalogoOpenHelper.COLUMN_MAIL_DS, mail);
	    values.put(CatalogoOpenHelper.COLUMN_CELL_DS, cell);
	    values.put(CatalogoOpenHelper.COLUMN_TEL_DS, tel);
	    values.put(CatalogoOpenHelper.COLUMN_FAX_DS, fax);
	    values.put(CatalogoOpenHelper.COLUMN_LAT_DS, lat);
	    values.put(CatalogoOpenHelper.COLUMN_LONG_DS, lon);
	    long insertId = database.insert(CatalogoOpenHelper.DICTIONARY_TABLE_NAME_DOVESIAMO, null,
	        values);
	    Cursor cursor = database.query(CatalogoOpenHelper.DICTIONARY_TABLE_NAME_DOVESIAMO,
	        allColumns, CatalogoOpenHelper.COLUMN_ID_DS + " = " + insertId, null,
	        null, null, null);
	    cursor.moveToFirst();
	    DoveSiamo newDoveSiamo = cursorToDoveSiamo(cursor);
	    cursor.close();
	    return newDoveSiamo;
	  }

	  public void deleteDoveSiamo(DoveSiamo ds) {
	    long id = ds.getId();
	    System.out.println("DoveSiamo deleted with id: " + id);
	    database.delete(CatalogoOpenHelper.DICTIONARY_TABLE_NAME_DOVESIAMO, CatalogoOpenHelper.COLUMN_ID_DS
	        + " = " + id, null);
	  }
	  
	  public void deleteDoveSiamoAll() {
		    database.delete(CatalogoOpenHelper.DICTIONARY_TABLE_NAME_DOVESIAMO, null, null);
	  }

	  public List<DoveSiamo> getAllDoveSiamo() {
	    List<DoveSiamo> doveSiamoAll = new ArrayList<DoveSiamo>();

	    Cursor cursor = database.query(CatalogoOpenHelper.DICTIONARY_TABLE_NAME_DOVESIAMO,
	        allColumns, null, null, null, null, null);

	    cursor.moveToFirst();
	    while (!cursor.isAfterLast()) {
	      DoveSiamo doveSiamo = cursorToDoveSiamo(cursor);
	      doveSiamoAll.add(doveSiamo);
	      cursor.moveToNext();
	    }
	    // make sure to close the cursor
	    cursor.close();
	    return doveSiamoAll;
	  }
	  
//	  public List<Prodotto> getAllProdottiFromCat(String cat) {
//		    List<Prodotto> prodotti = new ArrayList<Prodotto>();
////		    CategoriaDataSource dCat = new CategoriaDataSource(context);
////		    Categoria cat = dCat.getCategoria(id);
//		    Cursor cursor = database.query(CatalogoOpenHelper.DICTIONARY_TABLE_NAME_PRODOTTI,
//		        allColumns, "categoria='"+cat+"'", null, null, null, null);
//		    
//		    cursor.moveToFirst();
//		    while (!cursor.isAfterLast()) {
//		      Prodotto prodotto = cursorToProdotto(cursor);
//		      prodotti.add(prodotto);
//		      cursor.moveToNext();
//		    }
//		    // make sure to close the cursor
//		    cursor.close();
//		    return prodotti;
//		  }

	  private DoveSiamo cursorToDoveSiamo(Cursor cursor) {
	    DoveSiamo doveSiamo = new DoveSiamo();
	    doveSiamo.setId(cursor.getLong(0));
	    doveSiamo.setIndirizzo(cursor.getString(1));
	    doveSiamo.setMail(cursor.getString(2));
	    doveSiamo.setCell(cursor.getString(3));
	    doveSiamo.setTel(cursor.getString(4));
	    doveSiamo.setFax(cursor.getString(5));
	    doveSiamo.setLat(cursor.getString(6));
	    doveSiamo.setLon(cursor.getString(7));
//	    prodotto.setDescrizioneShort(cursor.getString(5));
	    return doveSiamo;
	  }
	
	
}
